package com.tom.architect02.mnbase.jetpack.livedata;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;

import android.os.Bundle;
import android.util.Log;
import android.view.View;

import com.tom.architect02.R;

public class LiveDataActivity extends AppCompatActivity {

    private static final String TAG = "LiveDataActivity";
    public static MutableLiveData liveData; // 监听数据的变化

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_live_data);

        liveData = new MutableLiveData();
        liveData.observe(this, new Observer<String>() { //1.new对象；2. 绑定观察者（订阅），
            @Override
            public void onChanged(String s) {
                Log.i(TAG, "收到了数据: " + s);
            }
        });

        // 向上泛型的使用。
        LiveDataBus.getInstance().with("msg", String.class, false)
                .observe(this, new Observer<String>() {
                    @Override
                    public void onChanged(String s) {
                        Log.i(TAG, "bus ：收到了数据2: " + s);
                    }
                });
    }

    public void myClick(View v) {
        liveData.setValue("mainClick"); // 3.主线程，发送数据
        liveData.postValue("子线程发送的数据"); // 异步线程使用。
        // 消息发送。
        LiveDataBus.getInstance().with("msg", String.class, false).postValue("您好");
    }


}